1. Field of Invention
The present invention relates generally to a method and apparatus for animating three-dimensional (3D) models and specifically to a 3D animation system using offset transforms.
2. Description of Related Art
Computer generated imagery includes the generation of static and dynamic moving images, where computer animation refers just to the dynamic moving images. Computer animation is a process used to generate animated moving images by using computer graphics. Modern computer animation usually uses 3D computer graphics, although 2D computer graphics are still used for stylistic, low bandwidth, and faster real-time renderings. Sometimes the end target for the computer animation is the computer itself, but other times the end target is another medium, such as a scene in a film.
To create the illusion of movement in 3D computer animation, along with television and films, an image is displayed on the computer screen and repeatedly replaced by a new image that is similar to the previous image, but advanced slightly in the time domain (e.g., at a rate of 24 or 30 frames/second). An example for how to move an object (e.g., a car) in 3D animation includes initially setting the screen's background to a color, such as black. Then, the car is drawn on the left of the screen. Next, the background is unchanged, but the car is duplicated slightly to the right of its original position. This process is repeated, each time moving the car a bit to the right. If this process is repeated fast enough, the car will appear to move smoothly to the right. This basic procedure is used for all moving pictures in films and television as well. Besides shifting an object, 3D animation can perform more complex transformations on the object, such as a change in size, shape, lighting effects, etc.
Conventional 3D computer animation uses keyframing. Keyframing is where specific attributes of a system are specified to occur at specific frames. In keyframing (e.g., programmed keyframed movement, keyframes, etc.), the user sets the position for an object at a given frame and then sets a new position for the object at another frame, and for all the intermediate frames, the system will move the object smoothly between the two positions.
A human animator or user can use keyframing to create animation data. Modeled objects can be constructed out of geometrical vertices, faces, and edges in a 3D coordinate system. The user can also use motion capture, either together with or separate from keyframing, to create animation data.
Designing animation using keyframes is one of the traditional challenges of 3D animation. Even for simple animations using keyframes, the setup and design is often very tedious and challenging, such that expert knowledge is required. Furthermore, keyframe-based animations are difficult to edit as well. Editing a keyframe-based animation requires that all of the control points of the animation curves associated with the system be modified.
U.S. Pat. No. 6,674,437 to Rose et al. is directed to a key reduction system which reduces the keyframes associated with a 3D movie to facilitate the streaming of the data over the Internet. As such, Rose's system facilitates the production, processing, and Internet distribution of 3D animated movies. Although the Rose's system reduces keyframes, Rose's system is still based on keyframes. Unfortunately, keyframe-based animation is quite complex to setup. It would be highly desirable to have an animation system that could create and edit animation without using keyframes, simply and based on time, independent of frame positioning.